In a conventional application building environment such as in most third and fourth generation programming languages, the task of constructing an application requires intensive knowledge of specialized methods and structures. Existing application environments do not enable end-users with limited programming knowledge to combine program modules from other users and program developers into complicated applications. The sharing of program components is done on a level inaccessible by the end-user. Furthermore, existing systems do not combine programing at different skill and complication levels into a unified environment where complex programing and simple end-user programming follow the same approach. The components of an application are usually rigorously embedded into the program source code either in the form of text or as a combination of text and objects. This results in difficulties in sharing computer components. Module and data dictionaries and well organized program libraries provide a partial solution to this problem. However there are still very limited possibilities for end-users of computer systems to share or even build complicated applications involving rich modular programming structure without intensive knowledge of a complicated programming environment.
The introduction of multidimensional spreadsheets allows users of such systems to create more complicated calculation models through a smooth transaction from two-dimensional spreadsheets and is thus a step toward making applications manageable by the end-user. Current spreadsheet systems however do not focus the user's attention on the underlying logical modular structure ever-present in an application. Furthermore current spreadsheet systems do not generalize the spreadsheet concept in such a way that powerful programming techniques can be applied without leaving the methodology of the spreadsheet environment but instead employ add-on techniques such as the writing of macros to enhance usability.
There exist numerous source code generators and fourth generation programing environments using graphical structures as part of application generation. Source code generators however and most other application building environments, by definition, are intended for program development and provide an environment for developing applications which is entirely different from the end-user environment. Thus the end-user is separated from the application building environment and is unable to create or share application components without moving up to the application developing level.
U.S. Pat. No. 4,956,773, issued Sep. 11, 1990 to Saito et al., describes methods for creating programs using various diagrams. The Saito patent is directed to an apparatus for automatically creating a source program, in particular the coding of the source program is automatically performed from program specifications which the programmer generates, in order to reduce the burden required to create such a source program. As illustrated in FIG. 11 of Saito, the source code is automatically generated from a module structure diagram.
U.S. Pat. No. 5,255,363, issued Oct. 19, 1993 to Seyler, describes methods for writing programs within a spreadsheet application. The Seyler patent is directed to a graphical programming system with a spreadsheet base for enabling users to create graphical programs for displaying and manipulating data. The Seyler invention allows a user to create graphical programs which can monitor parameters (such as cost and reliability) and provide feedback during the design of electronic systems, such as circuit boards.
U.S. Pat. No. 5,317,686, issued May 31, 1994 to Salas et al., describes relabeling of spreadsheet cells. The Salas et al patent is directed to an apparatus and labeling scheme which permits a user to reformat, redefine, and relabel the various cells of a multidimensional spreadsheet. The Salas et al patent also permits the creation of multidimensional spreadsheets where calculations are specified through general, rather than per cell, formulae.